import Vue from 'vue';
import App from './App';
import router from './router';
import ElementUI from 'element-ui';
import 'element-ui/lib/theme-chalk/index.css'; // 默认主题
// import '../static/css/theme-green/index.css';       // 浅绿色主题
import "babel-polyfill";

//样式
import '@/less/base.less';
import '@/less/commonClass.less'
import '@/less/common.less';

import httptool from './js/plugins/zry.plugins.httptool.js';
import validatetool from './js/plugins/zry.plugins.validate.js';
import formattool from './js/plugins/zry.plugins.formattool.ts';
import baseservice from './js/common/baseservice.js';
import tool from './js/plugins/zry.plugins.tool.js';

import msg from './js/data/zry.data.msg.js';
import apis from './js/data/zry.data.apiurls.js';
import cityarea from './js/data/zry.area.json';

Vue.prototype.tool = tool;
Vue.prototype.httptool = httptool;
Vue.prototype.validatetool = validatetool;
Vue.prototype.formattool = formattool;
Vue.prototype.baseservice = baseservice;
Vue.prototype.msg = msg;
Vue.prototype.apis = apis;

Vue.prototype.globaldata = {
	uploadUrl: httptool.rootUrl + apis.uploadUrl,
	ftpUrl: httptool.ftpUrl,
	imgBaseUrl: httptool.rootUrl + apis.imgBaseUrl,
	imgThumbUrl: httptool.rootUrl + apis.imgThumbUrl
}
Vue.use(ElementUI, {
	size: 'small'
});

//使用钩子函数对路由进行权限跳转
router.beforeEach((to, from, next) => {
	const role = localStorage.getItem('ms_username');
	if(!role && to.path !== '/login') {
		next('/login');
	} else if(to.meta.permission) {
		// 如果是管理员权限则可进入，这里只是简单的模拟管理员权限而已
		role === 'admin' ? next() : next('/403');
	} else {
		// 简单的判断IE10及以下不进入富文本编辑器，该组件不兼容
		if(navigator.userAgent.indexOf('MSIE') > -1 && to.path === '/editor') {
			Vue.prototype.$alert('vue-quill-editor组件不兼容IE10及以下浏览器，请使用更高版本的浏览器查看', '浏览器不兼容通知', {
				confirmButtonText: '确定'
			});
		} else {
			next();
		}
	}
})

require('./assets/webim.config.js')
let WebIM = require('easemob-websdk')

import  Emoji from  '@/components/page/chat/components/emoji.js';

// import emoji
WebIM.Emoji = Emoji;
Vue.prototype.$webim = WebIM

import { store } from './store'
new Vue({
	router,
	store,
	render: h => h(App)
}).$mount('#app');